home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 896 b | 47 lines |
- 10 CLS
- 20 KEY OFF
- 30 PRINT "FACTORIALS"
- 40 DEFDBL F,N,X
- 50 PRINT
- 60 PRINT "ENTER THE NUMBER WHOSE FACTORIAL YOU WANT"
- 70 PRINT "(ENTER ZERO TO END)";
- 80 INPUT N
- 90 IF N<0 OR N<>INT(N) THEN 60
- 100 IF N=0 THEN END
- 110 F=1:J=0:I=0:K=0
- 120 IF N>69 THEN 220
- 130 REM CALCULATE USING RECURSIVE ALGORITHM
- 140 FOR I=2 TO N
- 150 F=F*I
- 160 IF F<1E+10 THEN 190
- 170 F=F/1E+10
- 180 J=J+10
- 190 NEXT I
- 200 GOTO 370
- 210 REM CALCULATE USING STIRLING'S APPROXIMATION
- 220 K=INT(N/5)
- 230 I=I+5
- 240 IF I>K*5 THEN 350
- 250 F=F*N*N*N*N*N/EXP(5)
- 260 IF F>1E+30 THEN 290
- 270 IF F>1E+20 THEN 320
- 280 GOTO 230
- 290 F=F/1E+30
- 300 J=J+30
- 310 GOTO 260
- 320 F=F/1E+20
- 330 J=J+20
- 340 GOTO 260
- 350 X=SQR(N*6.28319)
- 360 F=(F*N^(N-K*5))/EXP(N-K*5)*X
- 370 PRINT "THE FACTORIAL OF";N;"IS";
- 380 PRINT CSNG(F);
- 390 IF J=0 THEN 410
- 400 PRINT "TIMES 10 TO THE POWER";J;", "
- 410 IF K>0 THEN 440
- 420 PRINT "COMPUTED RECURSIVELY"
- 430 GOTO 50
- 440 PRINT "COMPUTED BY STIRLING'S APPROXIMATION"
- 450 GOTO 50
- 460 END
-